package pl.koziolekweb.szkola.NIXMLNet;

// NI-XMLNet/ZapisServer.java
 
import java.beans.*;
import java.io.*;
import javax.swing.*;
import java.util.*;
import java.net.*;

public class ZapisServer {
    public static void main(String[] args) {

        JButton but = new JButton();
        but.setText("Naci\u015bnij mnie");
        but.addActionListener(new ButAction());

        HashMap<String,String> map =
            new HashMap<String,String>();
        map.put("kot","cat");
        map.put("pies","dog");

        // tworzymy obiekt klasy MyPanel
        // i ustawiamy wlasnosci
        MyPanel myPanel = new MyPanel();
        myPanel.setBut(but);
        myPanel.setMap(map);

        // utworzenie gniazda - kiedy klient sie zglosi
        // wysylamy mu/jej XML zawierajacy obiekt MyPanel
        // (razem z zawartym w nim przyciskiem, panelem
        // i obiektem HashMap) i zamykamy serwer
        ServerSocket ss = null;
        Socket      soc = null;
        XMLEncoder  enc = null;
        try {
            ss = new ServerSocket(54321);
            System.err.println("Oczekiwanie na klienta");
            soc = ss.accept();
            enc = new XMLEncoder(
                      new BufferedOutputStream(
                          soc.getOutputStream()));
            enc.writeObject(myPanel);
            enc.close();
            System.err.println("Obiekt wyslany - koniec");
        } catch(IOException e) {
            System.out.println("Co\u015b niedobrze");
            System.exit(1);
        }
        finally {
            try { soc.close();
            }catch(IOException ignore) { }

            try { ss.close();
            }catch(IOException ignore) { }
        }
    }
}
